﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ASPSnippets.FaceBookAPI.FaceBookConnect.API_Key = "28975801289";
            ASPSnippets.FaceBookAPI.FaceBookConnect.API_Secret = "d3dbe3b57bc1c676d7c89b25aeb8f32b";
            if (!IsPostBack)
            {
                if (Request.QueryString["error"] == "access_denied")
                {
                    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('User has denied access.')", true);
                    return;
                }

                string code = Request.QueryString["code"];
                if (!string.IsNullOrEmpty(code))
                {
                    string data = ASPSnippets.FaceBookAPI.FaceBookConnect.Fetch(code, "me");
                    Entidades.FaceBookUser faceBookUser = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Entidades.FaceBookUser>(data);
                    faceBookUser.PictureUrl = string.Format("https://graph.facebook.com/{0}/picture", faceBookUser.Id);
                    DeterminarTipoUsuario(faceBookUser);
                }
            }
            if (Session["Administrador"] != null || Session["Paciente"] != null)
            {
                loginLinkButton.Visible = false;
                NombreLiteral.Visible = true;
                fotoImg.Visible = true;
            }
            if (Session["Paciente"] != null)
            {
                Entidades.FaceBookUser fu = (Entidades.FaceBookUser)Session["Paciente"];
                fotoImg.Src = fu.PictureUrl;
                NombreLiteral.Text = string.Format("<a>{0}</a>", fu.Name);
            }
            if (Session["Administrador"] != null)
            {
                Entidades.FaceBookUser fu = (Entidades.FaceBookUser)Session["Administrador"];
                fotoImg.Src = fu.PictureUrl;
                NombreLiteral.Text = string.Format("<a>{0}</a>", fu.Name);
            }
        }

        private void DeterminarTipoUsuario(Entidades.FaceBookUser faceBookUser)
        {
            Entidades.TipoUsuario tu;
            tu = BL.Usuarios.Determinar(faceBookUser);
            if (tu is Entidades.Tipos.Usuario.Administrador)
            {
                Session["Administrador"] = faceBookUser;
                Response.Redirect("~/Autenticado/Administrador/Default.aspx");
            }
            else
            {
                Session["Paciente"] = faceBookUser;
                Response.Redirect("~/Autenticado/Paciente/Default.aspx");
            }
        }

        protected void Login(object sender, EventArgs e)
        {
            ASPSnippets.FaceBookAPI.FaceBookConnect.Authorize("user_photos,email", Request.Url.AbsoluteUri.Split('?')[0]);
        }
    }
}